package com.shuda.business.channel.service;

import com.shuda.business.channel.dto.DownstreamChannelDTO;
import com.shuda.business.channel.dto.DownstreamChannelQueryDTO;
import com.shuda.common.dto.PageDTO;
import com.shuda.common.dto.PageResult;

import java.util.List;

/**
 * 下游渠道服务接口
 */
public interface DownstreamChannelService {

    /**
     * 获取下游渠道分页列表
     */
    PageResult<DownstreamChannelDTO> getDownstreamChannelPage(PageDTO pageDTO, DownstreamChannelQueryDTO queryDTO);

    /**
     * 获取下游渠道详情
     */
    DownstreamChannelDTO getDownstreamChannelById(Long id);

    /**
     * 创建下游渠道
     */
    Long createDownstreamChannel(DownstreamChannelDTO dto);

    /**
     * 更新下游渠道
     */
    void updateDownstreamChannel(Long id, DownstreamChannelDTO dto);

    /**
     * 删除下游渠道
     */
    void deleteDownstreamChannel(Long id);

    /**
     * 批量删除下游渠道
     */
    void batchDeleteDownstreamChannel(List<Long> ids);

    /**
     * 更新下游渠道状态
     */
    void updateDownstreamChannelStatus(Long id, String status);

    /**
     * 获取启用的下游渠道列表
     */
    List<DownstreamChannelDTO> getEnabledDownstreamChannelList();
}